<?php

/** @noinspection PhpDocSignatureInspection */

namespace DreamCat\Array2Class\Demo;

use JetBrains\PhpStorm\Pure;

/**
 * 最简单的建造者，便于编写测试用例
 * @author vijay
 */
trait SimpleBuilder
{
    /**
     * 直接通过数组构建对象
     * @param array $values 传入的字段属性值
     * @return static
     */
    #[Pure]
    public static function builder(array $values = []): self
    {
        $obj = new static();
        foreach ($values as $key => $val) {
            /** @noinspection PhpVariableVariableInspection */
            $obj->$key = $val;
        }
        return $obj;
    }
}

# end of file
